www.gusucode.com > (粗糙集数据分析工具箱) matlab源码程序 > matlab代做 修改 程序工具箱 (粗糙集数据分析工具箱) matla 中使用/rsda/disperse.m
function xd=disperse(x,b,n) % x是要离散的原始数据;b是离散的区间,第一行是第一个条件属性的离散区间 [p,q]=size(x); % n是决策属性的数 xx=ones(p,q); [p1,q1]=size(b); %下面是离散的过程 for i=1:p for j=1:q-n a=x(i,j); for jj=1:q1 if a>b(j,jj) xx(i,j)=xx(i,j)+1; end end end end xx(:,q)=x(:,q); y=xx; %yd=sam_del(y); %下面是对离散的数据的处理 %就是对离散的数据进行归类处理,如果各个条件属性都相同而决策属性不同,则留下出现次数多的数据 for i=1:p num1=0; num2=0; for j=1:p if i~=j [y1,n1]=equal(y(i,1:q-n),y(j,1:q-n)); [y2,n2]=equal(y(i,q-n:q),y(n,q-n:q)); if n1==1&n2==0 num1=num1+1; end if n1==1&n2==1 num2=num2+1; end end end if num2<num1 y(i,1:q)=0; end end nn=0; for i=1:p if y(i,:)==0 continue; else nn=nn+1; yy(nn,:)=y(i,:); end end xd=sam_del(yy);